Recently we had a requirement wherein we wanted to see all the child records of a record in a SubGrid .
We had self-referential (hierarchical relationship) enabled for that entity.
Configuring the Sub Grid on the form.
We have also enabled the Editable grid for the Sub Grid.
The JavaScript code
</p> <p>function filterSubGrid()<br /> {<br /> // get the current record's guid<br /> var entityId = Xrm.Page.data.entity.getId();</p> <p>// refer the subgrid<br /> var testGrid = window.parent.document.getElementById("Test");</p> <p>if (testGrid == null)<br /> {<br /> setTimeout(function () {filterSubGrid(); }, 2000);<br /> return;<br /> }</p> <p>// fetch xml code using User operator<br /> var fetchXml = "<fetch distinct='false' no-lock='false' mapping='logical'>" +<br /> "<entity name='new_test' >" +<br /> "<attribute name='new_name' />" +<br /> " <attribute name='new_testname' />" +<br /> "<order attribute='new_name' descending='true' />" +<br /> "<filter type='and'>" +<br /> "<condition attribute='new_testid' operator='under' value='"+entityId+"'"+"/>" +<br /> "</filter>" +<br /> "</entity>" +<br /> "</fetch>";</p> <p>if (testGrid.control != null)<br /> {<br /> testGrid.control.SetParameter("fetchXml", fetchXml);<br /> testGrid.control.refresh();<br /> }<br /> else<br /> {<br /> setTimeout(filterSubGrid, 500);<br /> }<br /> }</p> <p>
The filtered Sub Grid (editable)
Note :- The JavaScript code is unsupported as we are making use of getElementById instead of Xrm library to access subgrid.
Hope it helps..
While it can be tempting to fulfill requirements in whatever way we can to do so at the expense of maintainablity of the system is rarely a good trade off. These exceptions to supportabilty are rarely documented and visible to the future operations/development teams. One of the main premises of using the platform is to be able to take advantage of new functionality as it becomes available. Unsupported customizations make this goal more challenging and isn’t in the best strategic interest of the enterprise. I would instead challenge the creativity of the development team to come up with alternate solutions that are supported. For example, in this case perhaps a web resource could have fulfilled the need while also keeping the system upgradable in the future.
LikeLike
True Stephan. I completely agree. Thanks for sharing your thoughts.
LikeLike
I ‘d also suggest that the Microsoft Dynamics 365 development team provide us with a supported method for doing this.
Developing a web resource is OK, but is not a good solution as it also comes with maintainability costs that have to be assumed by the customer/partner development team.
I’ve submitted a new idea in Microsoft’s experience page, which you can upvote here: https://experience.dynamics.com/ideas/idea/?ideaid=2e23736d-65ee-e811-a140-0003ff68c1bb
LikeLike
Recently i tried filter sub grid uisng javscript through supported method and it works. Please have a look https://mylearningsfromcrm.blogspot.com/2019/07/filter-subgrid-using-javascript-in.html
LikeLike
Recently i used javascript to filter subgrid in Dynamics 365 and it works. Please check https://mylearningsfromcrm.blogspot.com/2019/07/filter-subgrid-using-javascript-in.html
LikeLike